package com.itheima.springboot_21_j2cache.service.impl;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.itheima.springboot_21_j2cache.dao.BookDao;
import com.itheima.springboot_21_j2cache.domain.Book;
import com.itheima.springboot_21_j2cache.service.BookService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service //这是把他定义成一个业务层需要的bean对象,类似的还有Component Repository Controller
public class BookServiceImpl implements BookService {

    @Autowired
    private BookDao bookDao;//这个bookDao里有各种针对数据库的操作,针对数据库的操作,需要用到数据库配置,因此需要自动装配,即Autowired

    @Override
    public Boolean save(Book book) {
        //bookDao.insert(book);//service实例作为业务层,使用数据层的方法进行数据层操作,无可厚非.
        //数据层操作的结果是影响的行数.

        return bookDao.insert(book)>0;//当影响的行数大于0时,表示业务处理完成了
    }

    @Override
    public Boolean update(Book book) {
        return bookDao.updateById(book)>0;//当影响的行数大于0时,表示业务处理完成了
    }

    @Override
    public Boolean delete(Integer id) {
        return bookDao.deleteById(id)>0;//当影响的行数大于0时,表示业务处理完成了
    }

    @Override
    public Book getById(Integer id) {
        return bookDao.selectById(id);
    }

    @Override
    public List<Book> getAll() {
        return bookDao.selectList(null);
    }
    @Override
    public  Page<Book> getPage(int currenPage, int pageSize){
        Page<Book> page=new Page<>(currenPage,pageSize);
        return bookDao.selectPage(page,null);
    }
}
